Game streaming, such as carried out by NVIDIA's GRID and PC2Shield platforms, is a challenging issue when it is conducted over the Internet or other networks having time-varying characteristics. While these networks are well-suited for transporting data, the rate at which they transport data is not constant. Variable latency (delay) and jitter (rapid variations in latency) present ongoing issues for time-sensitive data and impair quality of service (QoS).
Not only must these networks bear traffic that changes unpredictably, but any given data channel between a transmitter (e.g., server) and a receiver (e.g., client) is likely to include a variety of physical links of sundry types and capacities, such as Ethernet, 2.4 GHz or 5 GHz WiFi, and cellular connections such as Long-Term Evolution (LTE) with different protocol layers. Adding to the complexity is that, if the receiver is mobile, the physical links are likely to change as the receiver roams. Accordingly, to enhance user experience, streaming parameters should be chosen carefully to provide an acceptable bandwidth, packet loss rate, latency and jitter. Once an acceptable data channel has been established, the transmitter may adjust its transmission parameters to optimize its transmission to suit the established data channel. Accurately testing data channels is important, because modern games need exceptionally good data channel connectivity so that gameplay is enjoyable. Various approaches and corresponding tools have been developed to test the bandwidth available in a data channel.
Some of the approaches involve using “probing” data packets to evaluate bandwidth. DietTOPP (Johnsson, et al., “DietTopp: A First Implementation and Evaluation of a Simplified Bandwidth Measurement Method,” In proc. of the Second Swedish National Computer Networking Workshop (SNCNW), Karlstad, 2004) and WBest (Li, et al., “WBest: a Bandwidth Estimation Tool for IEEE 802.11 Wireless Networks,” In Proceedings of 33rd IEEE Conference on Local Computer Networks (LCN), Montreal, Quebec, Canada, 2008) are two popular probing-based approaches. DietTOPP estimates available bandwidth by comparing and adapted probing rate and the corresponding data throughput. WBest uses a probing packet-pair dispersion technique to estimate the effective capacity of a wireless network and a probing packet train technique to infer mean and standard deviations of available bandwidth.
Various approaches and tools have been developed that do not use probing packets. For this reason, such approaches and tools are better regarded as performing bandwidth estimation rather than bandwidth testing. Some of these approaches are “single-layer” approaches, such as those that measure the Transmission Control Protocol (TCP) abstraction layer, e.g., Mascolo, et al., “TCP Westwood: Bandwidth Estimation for Enhanced Transport over Wireless Links,” MobiCom '01, pp. 287-297 (2001), and TCP in the context of IEEE 802.11, e.g., Yuan, et al., “A Novel Bandwidth Estimation Algorithm for IEEE 802.11 TCP Data Transmissions,” Wireless Communications and Networking Conference Workshops (WCNCW), pp. 377-382 (2012). Unfortunately, single-layer approaches do not accurately estimate the bandwidth of a data channel having links of disparate physical types with different abstraction layers, e.g., User Datagram Protocol (UDP). “Cross-layer” approaches do exist, e.g., IdleGap (Lee, et al., “Bandwidth Estimation in Wireless LANs for Multimedia Streaming Services,” In Proc. of IEEE ICME, July 2006, pp. 1181-1184 (2006)). Unfortunately, IdleGap obtains the wireless link idle rate from the Network Allocation Vector (NAV) and transmits it to the application layer. This requires additional data to be transmitted, which is intrusive and adds overhead into the channel. Further, the estimates IdleGap produces are dependent how lower layers of the network have been implemented. Thus, the estimates may not be reliable.